The present invention relates to storing data on a disk-based data storage system. More particularly, the invention concerns a system and method for storing data in contiguous storage locations on a storage disk to reduce the noise associated with reading or writing data on the storage disk.
Recent advances in data storage technology have resulted in a dramatic increase in the amount of data which can be stored by a single, inexpensive data storage system. In particular, modem personal computers and home entertainment devices include disk-based data storage systems, such as magnetic hard drives, CD-ROMs, etc. capable of storing several gigabytes (GB) of data. One result of this huge data storage capacity is that users can store very large data files, such as digitized video and/or audio data, for later playback on their personal computer or home entertainment device. However, current systems and methods for storing data on a disk-based data storage system often lead to xe2x80x9cfragmentationxe2x80x9d of the data where the data is broken up for storage in separate areas of the storage disk. Such fragmentation of data may cause excessive noise from the data storage system when the data is being written to or read from the storage disk due to the movement of the read/write arm between the separate storage areas.
In a disk-based data storage system, the data storage disk is logically divided into a large number of concentric circles or xe2x80x9ctracks.xe2x80x9d Each track is further divided into a number of physical storage locations called xe2x80x9csectors.xe2x80x9d Typically, each sector can hold 512 bytes of data. There may be 60 to 120 sectors on a given track. Thus, a data file which is greater than 512 bytes in size must be stored in a plurality of sectors and perhaps over several tracks. Since many video data files can be 10MB (10,485,760 bytes) or larger, these data files must be written over many discrete sectors and over several tracks.
When a disk-based data storage system is empty, large data files are typically stored in contiguous sectors since all sectors (or virtually all) are available for storage. However, as more data files are stored, and as previously stored data files are xe2x80x98erased,xe2x80x99 empty sectors become interspersed with sectors which contain data. To increase the ability of users to store large amounts of data, current data storage systems are configured to maximize the storage capacity of storage disks by xe2x80x9cfragmentingxe2x80x9d data files so that they can be stored in the empty sectors interspersed throughout a given track or tracks. As additional data files are xe2x80x98erasedxe2x80x99 and new files are stored, the fragmentation becomes more pronounced so that large data files may be fragmented many times.
Data storage systems use various types of filesystems to map the physical storage locations of separate parts of a data file so that the data file can be reconstructed when needed. Generally, a file system typically consists of the overall structure in which files are named, stored, and organized. A file system comprises files, directories, and the information needed to locate and access these items. Examples include FAT, FAT32, VFAT, NTFS, and so forth. Thus, a fragmented file can be reconstructed with the filesystem used by the data storage system at hand. However, heavy fragmentation of data files causes another problem that is not addressed by filesystems. When a data file is fragmented over many non-contiguous disk sectors, the read/write arm of the data storage system must move radially back and forth across the disk to read/write sectors on non-adjacent tracks. This movement of the read/write arm causes noise, or disk chatter, which is sometimes audible to a user.
When reading or writing large data files which are heavily fragmented, the disk-chatter can be very distracting. In fact, where fragmented files contain audio data, the noise may interfere with the user""s enjoyment since the user may be unable to hear low volume passages over the noise of the read/write arm""s movement. In addition, some data providers allow a customer to schedule downloads during periods when the customer is not using the computer or entertainment device. For example, a customer might wish to schedule a download while the customer is asleep. However, if the computer or entertainment device is located in the customer""s bedroom, the disk chatter associated with writing a heavily fragmented data file could interfere with the customer""s sleep.
A solution to the problem of disk chatter is especially desirable to entertainment providers who download video and/or audio data files to their customers for a fee. Such providers would prefer their customers to be able to enjoy the video and audio without the annoyance of disk chatter. Moreover, these providers would prefer a solution which does not require their customers to purchase new hardware and/or software.
The present invention may be summarized as a system and method for storing data on a storage medium without fragmentation. A data conveyance system, such as a server, is configured to read data which is to be stored and to configure the data for delivery to a data storage system, such as a personal computer or home entertainment device. The data conveyance system associates a storage instruction with the data, where the storage instruction instructs the data storage system to store the data on the storage medium without fragmentation. The data conveyance system then conveys the data and the storage instruction to the data storage system. The data storage system receives the data and storage instruction. A controller reads the storage instruction and then stores the data in contiguous storage locations on the storage medium in accordance with the storage instruction.
The storage medium typically is a disk, in which case the data conveyance system may configure the data for delivery to the data storage system by generating a filesystem that describes the structure by which the data will be organized and accessed, and by combining the data and the filesystem to form a partition file. The data conveyance system then may associate the storage instruction with the partition file and convey the storage instruction and partition file to the data storage system. Thereafter, the controller may format the storage disk to include a new disk partition and store the partition file in the new disk partition. Alternatively, the controller may be programmed or configured first to read the data storage disk to find contiguous storage locations which are empty (i.e., available for storage), and then to store the partition file only if sufficient available storage locations are found. As a further alternative, the controller may be configured to de-fragment the storage disk to maximize the number of contiguous storage locations available for storage.
By conveying the data as a part of a partition file and instructing the data storage system to create a new disk partition and store the partition file in the new disk partition, the data conveyance system ensures the data will not be fragmented when stored. As a result, disk chatter is reduced when the data is written to the data storage disk because the read/write arm is not required to move back and forth across the disk to write the data into non-contiguous sectors potentially extending across non-adjacent tracks. Similarly, disk chatter is reduced when the data is subsequently read from the data storage disk because the data is located in contiguous sectors.
The invention may be implemented on a single hardware system such as a personal computer. Alternatively, the invention may be implemented on a distributed system where the data conveyance system is remote from the data storage system. Further, the data conveyance system may convey the partition file and the storage instruction to the data storage system by a variety of communications systems including local area networks, wide area networks, cable networks, wireless broadcast networks, or the like.